Information processing apparatus, information processing method, and non-transitory computer readable storage medium

ABSTRACT

In an information processing apparatus that includes sequences of weak classifiers which are logically cascade-connected in each sequence and the sequences respectively correspond to categories of an object and in which the weak classifiers are grouped into at least a first group and a second group in the order of connection, classification processing by weak classifiers belonging to the first group of respective categories is performed by pipeline processing. Based on the processing results of the weak classifiers belonging to the first group of the respective categories, categories in which classification processing by weak classifiers belonging to the second group is to be performed are decided out of the categories. The classification processing by the weak classifiers respectively corresponding to the decided categories and belonging to the second group is performed by pipeline processing.

BACKGROUND OF THE INVENTION

Field of the Invention

The present invention relates to a technique for classifying an objectin an image.

Description of the Related Art

There is proposed a technique for classifying a specific object such asa human body or face in an image. Particularly, in recent years, ahigh-speed low-cost object classification method for an embedded systemsuch as a mobile terminal or a device installed in a car has receivedattention.

In P. Viola, M. Jones, “Rapid Object Detection using a Boosted Cascadeof Simple Features”, Proc. IEEE Conf. on Computer Vision and PatternRecognition, Vol. 1, pp. 511-518, December 2001, an algorithm forincreasing the speed of object detection is proposed. According to thisalgorithm, weak classifiers in a series generated by boosting learningare sequentially processed. Then, based on the classification result ofeach weak classifier, whether to process the next weak classifiers isdetermined. If it is determined not to process the next weakclassifiers, the processing of the remaining weak classifiers isomitted.

Japanese Patent Laid-Open No. 2012-247940 proposes a technique toefficiently perform classification processing. As a method of solution,the processing time is reduced by efficiently combining spatialparallelism and pipeline parallelism.

In Junguk Cho, et al., “Hardware acceleration of multi-view facedetection,” IEEE 7th Symposium on Application Specific Processors, pp.66-69, July 2009, a hardware implementation method for increasing thespeed of face detection is proposed. In this method, weak classifiersfor classifying faces of a plurality of categories (the orientation andthe like) are processed by spatial parallelism to reduce the processingtime.

Classification processing by a plurality of cascade-connected weakclassifiers (Japanese Patent Laid-Open No. 2012-247940, P. Viola, M.Jones, “Rapid Object Detection using a Boosted Cascade of SimpleFeatures”, Proc. IEEE Conf. on Computer Vision and Pattern Recognition,Vol. 1, pp. 511-518, December 2001, and Junguk Cho, et al., “Hardwareacceleration of multi-view face detection,” IEEE 7th Symposium onApplication Specific Processors, pp. 66-69, July. 2009) is a techniqueoften used as a high-speed and low-cost method for objectclassification. To improve the classification accuracy of theclassification target for all kinds of orientation variations of theclassification target object, there is a method that categorizes thevariations and performs classification by using a plurality of weakclassifiers set in a cascade arrangement for each category. The totalnumber of weak classifiers increases together with the increase in thecategories of classification targets.

In order to increase the speed of the weak classifiers corresponding tothe plurality of categories, a processing device is provided for eachcategory and weak classifiers of a plurality of categories aresimultaneously processed in Junguk Cho, et al., “Hardware accelerationof multi-view face detection,” IEEE 7th Symposium on ApplicationSpecific Processors, pp. 66-69, July. 2009. However, since theprocessing end times of the weak classifiers of the respectivecategories vary, the processing device of each category that hascompleted the processing is not used and the idle time is long.Therefore, in order to perform real-time object classificationprocessing that corresponds to a plurality of categories in an embeddedsystem, it is necessary to use and rapidly process a limited number ofprocessing devices.

SUMMARY OF THE INVENTION

The present invention has been made in consideration of the aboveproblem and provides a technique to rapidly classify an object in animage.

According to the first aspect of the present invention, there isprovided an information processing apparatus that includes a pluralityof sequences of weak classifiers which are logically cascade-connectedin each sequence and the sequences respectively correspond to aplurality of categories of an object and in which the plurality of weakclassifiers are grouped into at least a first group and a second groupin the order of connection, comprising: a first control unit configuredto control to perform, by pipeline processing, classification processingby weak classifiers belonging to the first group in the sequencesrespectively corresponding to the plurality of categories; a decisionunit configured to decide, based on results of classification processingby the weak classifiers belonging to the first group in the sequencesrespectively corresponding to the plurality of categories, categoriesfor which classification processing are to be performed by weakclassifiers belonging to the second group out of the plurality ofcategories; and a second control unit configured to control to perform,by pipeline processing, classification processing by the weakclassifiers belonging to the second group in sequences respectivelycorresponding to the categories decided by the decision unit.

According to the second aspect of the present invention, there isprovided an information processing method performed by an informationprocessing apparatus that includes a plurality of sequences of weakclassifiers which are logically cascade-connected in each sequence andthe sequences respectively correspond to a plurality of categories of anobject and in which the plurality of weak classifiers are grouped intoat least a first group and a second group in the order of connection,comprising: performing, by pipeline processing, classificationprocessing by weak classifiers belonging to the first group in thesequences respectively corresponding to the plurality of categories;deciding, based on results of classification processing by the weakclassifiers belonging to the first group in the sequences respectivelycorresponding to the plurality of categories, categories for whichclassification processing are to be performed by weak classifiersbelonging to the second group out of the plurality of categories; andperforming, by pipeline processing, classification processing by theweak classifiers belonging to the second group in sequences respectivelycorresponding to the decided categories.

According to the third aspect of the present invention, there isprovided a non-transitory computer-readable storage medium storing acomputer program for causing a computer, that includes a plurality ofsequences of weak classifiers which are logically cascade-connected ineach sequence and the sequences respectively correspond to a pluralityof categories of an object and in which the plurality of weakclassifiers are grouped into at least a first group and a second groupin the order of connection, to function as a first control unitconfigured to control to perform, by pipeline processing, classificationprocessing by weak classifiers belonging to the first group in thesequences respectively corresponding to the plurality of categories; adecision unit configured to decide, based on results of classificationprocessing by the weak classifiers belonging to the first group in thesequences respectively corresponding to the plurality of categories,categories for which classification processing are to be performed byweak classifiers belonging to the second group out of the plurality ofcategories; and a second control unit configured to control to perform,by pipeline processing, classification processing by the weakclassifiers belonging to the second group in sequences respectivelycorresponding to the categories decided by the decision unit.

Further features of the present invention will become apparent from thefollowing description of exemplary embodiments (with reference to theattached drawings).

BRIEF DESCRIPTION OF THE DRAWINGS

FIG. 1 is a flowchart of object classification processing which isperformed on an input image by an object classification apparatus;

FIG. 2 shows an example of weak classifiers;

FIG. 3 is a view for explaining an example of the object classificationprocessing;

FIG. 4 is a view showing general processing of processing a weakclassifier belonging to a category by each category;

FIG. 5 is a view for explaining an example of the object classificationprocessing;

FIG. 6 is a block diagram showing an example of the hardware arrangementof a computer apparatus;

FIG. 7 is a block diagram showing an example of the arrangement of theobject classification apparatus;

FIG. 8 is a view showing states of each cycle in object classificationprocessing;

FIG. 9 is a view for explaining object classification processing;

FIG. 10 is a view for explaining the object classification processing;

FIG. 11 is a view showing an arrangement in which a plurality of weakclassifiers are provided on stage 1 and stage 2; and

FIG. 12 is a view showing an arrangement in which the number of stagesis P (P is an integer of 3 or more).

DESCRIPTION OF THE EMBODIMENTS

Embodiments of the present invention will be described below withreference to the accompanying drawings. Note that the embodiments to bedescribed below are merely examples when the present invention ispracticed concretely, and are practical embodiments of arrangementsdescribed in the appended claims.

First Embodiment

An example of an information processing apparatus that includes aplurality of sequences of weak classifiers which are logicallycascade-connected in each sequence and the sequences respectivelycorrespond to a plurality of categories of an object and in which theplurality of weak classifiers are grouped into at least a first groupand a second group in the order of connection will be described in thefirst embodiment. More specifically, classification processing by weakclassifiers belonging to the first group in the sequences respectivelycorresponding to the plurality of categories is performed by pipelineprocessing. Then, based on the results of classification processing bythe weak classifiers belonging to the first group in the sequencesrespectively corresponding to the plurality of categories, categories inwhich weak classifiers belonging to the second group should performclassification processing are decided out of the plurality ofcategories. Subsequently, an example of an information processingapparatus that performs, by pipeline processing, classificationprocessing to be performed by the weak classifiers belonging to thesecond group in sequences respectively corresponding to the decidedcategories will be described.

The first embodiment will describe a case in which such an informationprocessing apparatus is applied to an object classification apparatuswhich classifies the categories of an object included in an input image.First, an example of the arrangement of the object classificationapparatus according to the first embodiment will be described withreference to a block diagram of FIG. 7.

A buffer 701 is a memory for storing an input image input from anexternal apparatus or transferred from a memory inside the apparatusitself. In the following explanation, assume that an object which is tobe a category classification target is included in this input image.

A weak classifier processing unit 703 includes a plurality of sequencesof weak classifiers. Each sequence includes a plurality of weakclassifiers which are logically cascade-connected and a sequence isprovided for each category of an object. The weak classifier processingunit 703 uses dictionary data stored in a RAM (Random Access Memory) 704and LUT (Look-Up Table) data to time-divisionally operate the weakclassifiers for each category. This allows the weak classifierprocessing unit 703 to perform classification processing on an objectthat is included in the input image stored in the buffer 701. In thefollowing explanation, the act of causing the weak classifier to operatewill sometimes be described as “processing (performing) the weakclassifier”. In addition, a description about the dictionary data andLUT data will be given later.

The weak classifiers of each category included in the weak classifierprocessing unit 703 will be described with reference to the example inFIG. 2. The number of categories is eight in FIG. 2. This means that theweak classifier processing unit 703 is to perform classificationprocessing for each of the eight categories on an object included in aninput image. Additionally, in FIG. 2, there are two cascade-connectedweak classifiers provided for each of the eight categories (categories 1to 8), and weak classifiers for each category are constituted by a pairof weak classifiers, a weak classifier 201 (stage 1 classifier) whichoperates first and a weak classifier 202 (stage 2 classifier) whichoperates second. In FIG. 2, out of the two weak classifierscorresponding to category c (1≦c≦8), the stage 1 weak classifier and thestage 2 weak classifier are represented by C_(c,1) and C_(c,2),respectively.

In the first embodiment, as shown in FIG. 2, assume that there are eightcategories and weak classifiers, in which a stage 1 weak classifierC_(c,1) and a stage 2 weak classifier C_(c,2) are cascade-connected, areprovided for each category c (1≦c≦8). In such an arrangement accordingto the first embodiment, the stage 1 weak classifier C_(c,1) of eachcategory c is performed by pipeline processing. Then, depending on theprocessing result of the stage 1 weak classifier C_(c,1) in eachcategory c, each category in which the stage 2 weak classifier C_(c,2)is to be performed by pipeline processing (that is, each category thatis to be a classification target in the stage 2) is decided out of thecategories c. Subsequently, the stage 2 weak classifier C_(c,2) of eachdecided category is performed by pipeline processing.

In addition, the weak classifiers to be performed by pipeline processingin each stage are performed in the order of the categories. As the orderof performance, assume that an upper category in FIG. 2 will beperformed first in the first embodiment.

Referring back to FIG. 7, the RAM 704 stores the dictionary data and LUTdata as described above. The RAM 704 includes a work area to be used bya control unit 702 and the weak classifier processing unit 703 toperform various processes. In this manner, the RAM 704 can appropriatelyprovide various types of areas.

A classification result holding unit 705 is a unit for storing aprocessing result by the weak classifier processing unit 703.

A initialization information holding unit 706 is a unit for storinginformation indicating the performance order of the weak classifiersC_(c,1) of stage 1.

The control unit 702 performs operation control of the entire objectclassification apparatus including the units described above.

Next, object classification processing performed on an input image bythe object classification apparatus according to the first embodimentwill be described with reference to the flowchart of the processingshown in FIG. 1.

<Step S101>

The control unit 702 stores information (performance order information)indicating the performance order of stage 1 weak classifiers C_(c,1) forthe respective categories c is stored in the initialization informationholding unit 706. In this case, category numbers (category indices)aligned in processing order are stored as pieces of informationindicating the performance order of the stage 1 weak classifiers C_(c,1)in the initialization information holding unit 706. In the firstembodiment, since pipeline processing is performed in the order ofC_(1,1), C_(2,1), C_(3,1), C_(4,1), C_(5,1), C_(6,1), C_(7,1), andC_(8,1), information indicating “1→2→3→4→5→6→7→8” is stored as theperformance order information in the initialization information holdingunit 706. Such performance order information can be input by a user byusing an operation unit (not shown) or decided by the objectclassification apparatus in accordance with some kind of a reference.

Next, in steps S102 to S105, the weak classifier processing unit 703performs the stage 1 weak classifiers C_(1,1) to C_(8,1) of therespective categories by pipeline processing in this order.

<Step S103>

The weak classifier processing unit 703 first refers to the performanceorder information stored in the initialization information holding unit706 and reads out the category index of the category to be processedthis time. In the case of the first embodiment, the category index=1 isread out in the first step S103, and the category index=N is read out inthe Nth (1<N≦8) step S103.

<Step S104>

If a category index c has been read out from the initializationinformation holding unit 706 by the weak classifier processing unit 703in step S103, the weak classifier processing unit 703 performs the weakclassifier C_(c,1) and obtains the classification result of the inputimage by the weak classifier C_(c,1). At this time, the processes ofsteps S106 to S111 are performed in step S104.

<Step S106>

The weak classifier processing unit 703 reads out the dictionary datacorresponding to the weak classifier C_(c,1) from the RAM 704. In thefirst embodiment, assume that “dictionary data corresponding to the weakclassifier C_(c,1)” is “data which indicates the pixel positioncorresponding to the weak classifier C_(c,1) in the input image” andthat the dictionary data differs in each weak classifier. In general,dictionary data D_(c,i) corresponding to a weak classifier C_(c,i) isexpressed as:D _(c,i)=(X _(c,i) ,Y _(c,i))  (1)

where X_(c,i) and Y_(c,i) respectively indicate the x-coordinate valueand the y-coordinate value corresponding to the weak classifier C_(c,i)in the input image. Note that although the dictionary data of the weakclassifier is assumed to be a pixel position of one pixel in the inputimage for the sake of descriptive convenience in this embodiment, thepresent invention is not limited to this. Pixel positions of a pluralityof pixels can be set as the dictionary data.

<Step S107>

The weak classifier processing unit 703 reads out, from the input imagestored in the buffer 701, a pixel value f (X_(c,1), Y_(c,1)) of thepixel position indicated by the dictionary data D_(c,1). Note that afeature amount which is acquired by using a pixel value of one or aplurality of pixels can be used instead of the pixel value.

<Step S108>

The weak classifier processing unit 703 reads out LUT data correspondingto the weak classifier C_(c,1) from the RAM 704. In the firstembodiment, assume that “LUT data corresponding to the weak classifierC_(c,1)” is “data representing a function to convert the image featureamount (pixel value in this case) of the weak classifier C_(c,1) readout in step S107 into a score (evaluation value) that corresponds to thelikelihood of the target object”. In general, a function L_(c,i)represented by the LUT data corresponding to the weak classifier C_(c,i)is expressed as:S _(c,i) =L _(c,i)(f(X _(c,i) ,Y _(c,i)))  (2)

where S_(c,i) is a score obtained by converting a pixel value f(X_(c,i), Y_(c,i)) using the function L_(c,i).

<Step S109>

The weak classifier processing unit 703 obtains a score S_(c,1) byconverting the pixel value f (X_(c,1), Y_(c,1)) using the functionL_(c,1). Furthermore, the weak classifier processing unit 703 reads outa threshold T_(c,1) corresponding to the weak classifier C_(c,1) fromthe RAM 704.

<Step S110>

The weak classifier processing unit 703 compares the magnitudes of thescore S_(c,1) and the threshold T_(c,1). If S_(c,1)>T_(c,1), the processadvances to step S111. On the other hand, if S_(c,1)≦T_(c,1), theprocess advances to step S105, and the processes of step S103 andsubsequent steps are performed on the next category.

<Step S111>

The weak classifier processing unit 703 associates the category index cand the classification result of the weak classifier C_(c,1) and storesthe associated index and result in the classification result holdingunit 705.

By performing the loop of steps S102 to S105 for each of the categoryindices 1 to 8, a category that has a score exceeding the threshold outof the categories 1 to 8 is stored in the classification result holdingunit 705 as a category that has passed stage 1 in association with thecategory index c of the category and the classification result by thestage 1 weak classifier of the category. On the other hand, theprocessing of a category that has a score which is equal to or less thanthe threshold is terminated, and nothing is stored in the classificationresult holding unit 705.

Next, in steps S112 to S117, the weak classifier processing unit 703performs classification processing of each stage in stage 2 andsubsequent stages. In the first embodiment, the classificationprocessing of stage 2 is performed by pipeline processing for eachcategory corresponding to a category index stored in the classificationresult holding unit 705.

<Step S114>

The weak classifier processing unit 703 selects, out of the categoryindices stored in the classification result holding unit 705, anunselected category c which has a preceding performance order in theperformance order indicated in the above-described performance orderinformation.

<Step S115>

The weak classifier processing unit 703 performs the weak classifierC_(c,2) and obtains the classification result of the input image by theweak classifier C_(c,2). At this time, processes of steps S106 to S111are also performed in step S115, and the target category is set ascategory 2. In this case, in step S106, dictionary data corresponding tothe weak classifier C_(c,2) is read out. In step S107, a pixel value f(X_(c,2), Y_(c,2)) is read out, and LUT data corresponding to the weakclassifier C_(c,2) is read out in step S108. Then, in step S109, a scoreS_(c,2) is obtained by converting the pixel value f (X_(c,2), Y_(c,2))by a function L_(c,2), and the magnitudes of the score S_(c,2) and athreshold T_(c,2) are compared in step S110. If S_(c,2)>T_(c,2), theprocess advances to step S111, and the category index c and theclassification result by the weak classifier C_(c,2) are associated andstored in the classification result holding unit 705. On the other hand,if S_(c,2)≦T_(c,2), the process advances to step S114, and the processesof step S115 and subsequent steps are performed on the category next inorder.

By performing the loop of steps S112 to S117 on categories correspondingto all of the category indices stored in the classification resultholding unit 705, classification results (final classification result)of the categories can be acquired in the classification result holdingunit 705. Hence, the weak classifier processing unit 703 outputs thefinal classification result of each category stored in theclassification result holding unit 705 as the object classificationresult.

The processing time can be reduced by the above described processing andarrangement.

Next, an example of object classification processing using the weakclassifiers exemplified in FIG. 2 will be described with reference toFIGS. 3 and 5.

In FIG. 3, out of the weak classifiers C_(1,1) to C_(8,1) and C_(1,2) toC_(8,2), a black circle (oblique lines) 301 indicates a weak classifierwhose score is greater than the threshold, a solid line circle 302indicates a weak classifier whose score is equal to or less than thethreshold, and a dotted line circle 303 indicates a unperformed weakclassifier.

Assume that a processing time of 6 cycles is necessary to perform oneweak classifier. In cycle 1, processing of the weak classifier C_(1,1)of category 1 in stage 1 is started, and processing of the weakclassifier C_(2,1) of category 2 in stage 1 is started in cycle 2. Inthis manner, the processes of weak classifiers C_(1,1) to C_(8,1) ofcategories 1 to 8, respectively, in stage 1 are completed in order forcycle 7 and subsequent cycles by performing pipeline processing.

Since the score of the weak classifier C_(1,1) of category 1 in stage 1does not exceed the threshold, there is no need to perform theprocessing of the weak classifier C_(1,2) of category 1 in stage 2. Incycle 7, the processing of the weak classifier C_(1,1) of category 1 instage 1 is completed. In this case, the information (category index andclassification result) of the weak classifier C_(1,1) of category 1 instage 1 is not stored in the classification result holding unit 705.

Since the score of the weak classifier C_(2,1) of category 2 in stage 1exceeds the threshold, the processing of the weak classifier C_(2,2) ofcategory 2 in stage 2 needs to be performed. In cycle 8, the processingof the weak classifier C_(2,1) of category 2 in stage 1 is completed.The category index of the weak classifier C_(2,1) of category 2 in stage1 and the classification result of the weak classifier C_(2,1) areassociated with each other and stored in the classification resultholding unit 705 which has a FIFO (First-In First-Out) arrangement. FIG.5 shows a three-stage FIFO arrangement, and first input data d1 isstored in an entry F1, second input data d2 is stored in an entry F2,and third input data d3 is stored in an entry F3. Then, when data d4 isinput next, data d2 and data d3 stored in the corresponding entries F2and F3 are overwritten on the entries F1 and F2, respectively, and datad4 is stored in the entry F3. Subsequently, data write on the entries F1to F3 is performed in the same manner.

Since the score of the weak classifier C_(3,1) of category 3 in stage 1exceeds the threshold, processing of the weak classifier C_(3,2) ofcategory 3 in stage 2 needs to be performed. In cycle 9, the processingof the weak classifier C_(3,1) of category 3 in stage 1 is completed.The category index of the weak classifier C_(3,1) of category 3 in stage1 and the classification result of the weak classifier C_(3,1) areassociated with each other and stored in the classification resultholding unit 705.

In cycle 9, the information (category index and classification result)of the weak classifier C_(2,1) of category 2 in stage 1 and theinformation (category index and classification result) of the weakclassifier C_(3,1) of category 3 in stage 1 are stored in classificationresult holding unit 705.

In this manner, for each of categories 1 to 8 in stage 1, theabove-described information is stored in the classification resultholding unit 705 for each weak classifier whose score has exceeded thethreshold. In cycle 12, information of the weak classifier C_(6,1) ofcategory 6 in stage 1 is stored in the third entry F3 of theclassification result holding unit 705.

In cycle 14, since the processing of the weak classifier C_(8,1) ofcategory 8 in stage 1 is completed, the process advances to stage 2. Inthe case of FIG. 5, category indices of categories that have exceededthe threshold are stored in the classification result holding unit 705,the category indices are read out in the order of the entries (F1 to F3)in the respective cycles 14, 15, and 16, and the weak classifier instage 2 is performed for each category corresponding to each categoryindex which has been read out. In cycle 15, processing of the weakclassifier C_(2,2) of category 2 in stage 2 is started. Subsequently, incycles 16 and 17, the processing of the weak classifier C_(3,2) ofcategory 3 in stage 2 and the processing of the processing of the weakclassifier C_(6,2) of category 6 in stage 2, respectively, are started.Therefore, processing of all the weak classifiers can be performed inthe processing time of 23 cycles.

For the sake of comparison, in the example of object classificationprocessing based on FIG. 3, the processing of a general case in whichweak classifiers belonging to a category are processed for each categorywill be described with reference to FIG. 4. Assume also in this casethat a processing time of six cycles is necessary to process one weakclassifier. In cycle 1, the processing of the weak classifier ofcategory 1 in stage 1 is started.

In a case in which weak classifiers are processed for each category,since the score of the weak classifier C_(1,1) of category 1 in stage 1does not exceed the threshold, there is no need to perform theprocessing of weak classifier C_(1,2) of category 1 in stage 2. Sinceresults cannot be acquired until the weak classifier processing of allcategories of stage 1 is completed, whether to perform the weakclassifier processing of stage 2 cannot be determined. Hence, pipelineprocessing cannot be performed. In cycle 7, the processing of the weakclassifier C_(1,1) of category 1 in stage is completed. The processingof the weak classifier C_(1,2) of category 1 in stage 2 is omitted, andthe processing of the weak classifier C_(2,1) of category 2 in stage 1is started.

Since the score of the weak classifier C_(2,1) of category 2 in stage 1exceeds the threshold, the processing of the weak classifier C_(2,2) ofcategory 2 in stage 2 needs to be performed. In cycle 13, the processingof the weak classifier C_(2,1) of category 2 in stage 1 is completed,and the processing of the weak classifier C_(2,2) of category 2 in stage2 is started. As a result, a time of 67 cycles is necessary to processall the weak classifiers.

As described above, according to the first embodiment, a weak classifierof each category is performed by pipeline processing for each stage, andeach category in which a weak classifier is to be performed in the nextstage is decided based on the result of each performance. Hence, thecategories in which the weak classifiers are to be performed in the nextstage can be confirmed at an early period, and the weak classifiers canalso be performed by pipeline processing in the next stage. This canincrease the processing speed.

Additionally, in the first embodiment, since the weak classifierprocessing of stage 2 is started after the weak classifier processing ofstage 1 is completed, the control of the apparatus and the arrangementof the classification result holding unit 705 become simpler than in thesecond embodiment (to be described later).

<Modification>

As described above, the dictionary data of the weak classifier is notlimited to the pixel position of one pixel on an input image. Forexample, it can be one or more pixel positions of a plurality of imagesor one or more positions in a time-series space when processing a movingimage.

The method of obtaining a score S_(c,i) is also not limited to theabove-described method. For example, the score S_(c,i) can be obtainedby using a plurality of pairs of coordinates in a plurality of imagesand a function indicated by the LUT data. The input image can also be anintegrated image or a feature image.

Second Embodiment

Differences from the first embodiment will be mainly described below.Unless otherwise specified, details are the same as in the firstembodiment. The state of each cycle in object classification processingin a case in which the state of the weak classifier in each categorychanges to a state exemplified in FIG. 3 as a result of performing weakclassifier processing will be described with reference to FIG. 8.

In cycle 1, the processing of a weak classifier C_(1,1) of category 1 instage 1 is started, and the processing of a weak classifier C_(2,1) ofcategory 2 in stage 1 is started in cycle 2. By performing pipelineprocessing in this manner, processing of weak classifiers C_(1,1) toC_(8,1) of categories 1 to 8, respectively, in stage 1 are sequentiallycompleted from cycle 7.

In cycle 7, the processing of the weak classifier C_(1,1) of category 1in stage 1 is completed. Since the score of the weak classifier C_(1,1)of category 1 in stage 1 does not exceed the threshold, there is no needto perform the processing of a weak classifier C_(1,2) of category 1 instage 2, and the information of the weak classifier C_(1,1) of category1 in stage 1 is not stored in a classification result holding unit 705.

In cycle 8, the processing of the weak classifier C_(2,1) of category 2in stage 1 is completed. Since the score of the weak classifier C_(2,1)of category 2 in stage 1 exceeds the threshold, the processing of a weakclassifier C_(2,2) of category 2 in stage 2 needs to be performed, andthe information of the weak classifier C_(2,1) of category 2 in stage 1is stored in the classification result holding unit 705.

In cycle 9, together with reading out the object classification resultof the weak classifier C_(2,1) from the classification result holdingunit 705 and starting the processing of the weak classifier C_(2,2), theprocessing of the weak classifier C_(3,1) is completed. Since the scoreof the weak classifier C_(3,1) exceeds the threshold, information of theweak classifier C_(3,1) is stored in the classification result holdingunit 705.

In this manner, in cycle 9, both “reading out the object classificationresult of the weak classifier C_(3,1) from the classification resultholding unit 705” and “storing the information of the weak classifierC_(3,1) in the classification result holding unit 705” are performed. Incycle 9, since the object classification result of the weak classifierC_(2,1) was read out, only the information of the weak classifierC_(3,1) is stored in the classification result holding unit 705.

In cycle 10, together with reading out the object classification resultof the weak classifier C_(3,1) from the classification result holdingunit 705 and starting the processing of a weak classifier C_(3,2), theprocessing of the weak classifier C_(4,1) is completed. Since the scoreof the weak classifier C_(4,1) does not exceed the threshold,information of the weak classifier C_(4,1) is not stored in theclassification result holding unit 705.

In this manner, in the second embodiment, the information of each weakclassifier whose score exceeds the threshold is stored in theclassification result holding unit 705 and the object classificationresults are read out from the classification result holding unit 705 forcategories 1 to 8 in stage 1. As described in cycle 9, by starting theweak classifier processing of stage 2 before the weak classifierprocessing of stage 1 is completed, the efficiency of pipelineprocessing can be improved. Subsequently, the processing of a weakclassifier C_(6,2) is completed in cycle 18. Therefore, all theclassifiers can be processed in 18 cycles.

In this manner, according to the second embodiment, since the processingof the weak classifiers of stage 2 can be started earlier than in thefirst embodiment, the processing time can be reduced.

Third Embodiment

Differences from the first embodiment will be mainly described below.Unless otherwise specified, details are the same as in the firstembodiment. In the first embodiment, there was no particular referencein deciding a category to process first. In the third embodiment, theperformance order of a weak classifier in each category in stage 1 ispreset and information indicating the set performance order is stored inan initialization information holding unit 706 so that a category havinga high possibility that the object classification processing will reachstage 2 is processed first in stage 1. This setting can be made inadvance by a statistical method or the like.

An example of object classification processing using the weakclassifiers exemplified in FIG. 2 will be described with reference toFIGS. 9 and 10.

In FIG. 9, out of weak classifiers C_(1,1) to C_(8,1) and C_(1,2) toC_(8,2), a black circle (oblique lines) 901 indicates a weak classifierwhose score is greater than the threshold, a solid line circle 902indicates a weak classifier whose score is equal to or less than thethreshold, and a dotted line circle 903 indicates a unperformed weakclassifier. In FIG. 9, the performance order of categories of categories1 to 8 is decided so that categories (categories 2, 3, 6) having a highpossibility that the object classification processing will reach stage 2are processed first in stage 1 before other categories. In FIG. 9,processing is performed in the order of category 2, 3, 6, 1, 4, 5, 7,and 8 in state 1. Since such an arrangement will allow the informationof a weak classifier of a category having a high possibility that theprocessing will reach stage 2 to be stored in a classification resultholding unit 705 earlier than in the first embodiment, the weakclassifiers of stage 2 can be processed earlier.

As shown in FIG. 10, the processing of the weak classifier C_(2,1) isstarted in cycle 1, the processing of the weak classifier C_(3,1) isstarted in cycle 2, and the processing of the weak classifier C_(6,1) isstarted in cycle 3. In this manner, by performing pipeline processing inthe order of categories based on the pre-decided performance order, theprocesses of the weak classifiers C_(1,1) to C_(8,1) are completed inthe order of categories based on the performance order indicated by theinformation stored in the initialization information holding unit 706from cycle 7.

As described above, the performance order corresponds to the degree ofpossibility that the object classification processing of a category willpass to the next stage and is acquired by using a plurality of pieces ofevaluation data in advance. This order can be decided by statisticaldata, the classification result of the previous frame, classificationresult of a neighboring frame, the degree of similarity of the category,and the like.

In cycle 7, the processing of the weak classifier C_(2,1) is completed.Since the score of the weak classifier C_(2,1) exceeds the threshold,the information of the weak classifier C_(2,1) is stored in theclassification result holding unit 705.

In cycle 8, the processing of the weak classifier C_(3,1) is completed.Since the score of the weak classifier C_(3,1) exceeds the threshold,the information of the weak classifier C_(3,1) is stored in theclassification result holding unit 705.

In cycle 9, together with reading out the object classification resultof the weak classifier C_(2,1) from the classification result holdingunit 705 and starting the processing of the weak classifier C_(2,2), theprocessing of the weak classifier C_(6,1) is completed. Since the scoreof the weak classifier C_(6,1) exceeds the threshold, information of theweak classifier C_(6,1) is stored in the classification result holdingunit 705.

In cycle 10, together with reading out the object classification resultof the weak classifier C_(3,1) from the classification result holdingunit 705 and starting the processing of the weak classifier C_(3,2), theprocessing of the weak classifier C_(1,1) is completed. Since the scoreof the weak classifier C_(1,1) does not exceed the threshold,information of the weak classifier C_(1,1) is not stored in theclassification result holding unit 705.

In cycle 11, the object classification result of the weak classifierC_(6,1) is read out from the classification result holding unit 705 andthe processing of the weak classifier C_(6,2) is started. By such anarrangement, the processing of the weak classifier C_(6,2) can bestarted one cycle before in the third embodiment than in the secondembodiment. In addition, in cycle 11, the processing of the weakclassifier C_(4,1) is completed. Since the score of the weak classifierC_(4,1) does not exceed the threshold, the information of the weakclassifier C_(4,1) is not stored in the classification result holdingunit 705.

In this manner, in the third embodiment, for each of categories 1 to 8in stage 1, the information of each weak classifier whose score exceedsthe threshold is stored in the classification result holding unit 705and the corresponding object classification result is read out from theclassification result holding unit 705. Such an arrangement allows theweak classifiers in stage 2 to be processed earlier than in the firstembodiment, thereby further improving the efficiency of the weakclassifier processing. Subsequently, in cycle 17, the processing of theweak classifier C_(6,2) is completed. Therefore, all the weakclassifiers can be processed in a processing time of 17 cycles.

In this manner, according to the third embodiment, since a weakclassifier of a category having a high possibility that the objectclassification processing will pass to stage 2 is processed withpriority, the efficiency of pipeline processing can be improved.

First Modification of Above-Described Embodiments

A “category of an object” in the above-described embodiments can beanything as long as it is an object attribute capable of beingcategorized into some number of pieces. For example, it can be thevarious orientations of an object. In addition, the same type of objectshaving different object sizes, directions and illumination or differenttypes of objects can be set as targets, and the size, illuminationdirection, and the type of the target object can also be used as the“category of an object”.

Second Modification of Above-Described Embodiments

In the above described embodiments, although one weak classifier wasprovided for each category in both stages 1 and 2, a plurality of weakclassifiers can be provided for each category in both stages. FIG. 11shows an arrangement in which a plurality of weak classifiers have beenprovided in the respective stages 1 and 2. In FIG. 11, M (M is aninteger of 3 or more) weak classifiers have been provided in each of thestages 1 and 2. In FIG. 11, C_(c,i,j) (1≦c≦N, 1≦i≦2, 1≦j≦M in FIG. 11)represents the jth weak classifier from the left side (from the inputside) belonging to weak classifiers of a category c in stage i.

In this case, the processing according to the flowchart of FIG. 1 can bemodified in the following manner.

In step S106 (in step S104), the weak classifier processing unit 703reads out pieces of dictionary data D_(c,1,1) to D_(c,1,M) correspondingto weak classifiers C_(c,1,1) to C_(c,1,M) from the RAM 704. Theproperty of dictionary data is the same as that described in the firstembodiment.

In step S107 (in step S104), the weak classifier processing unit 703reads out pixel values f (X_(c,1,1), Y_(c,1,1)) to f (X_(c,1,M),Y_(c,1,M)) of pixel positions indicated by the respective pieces ofdictionary data D_(c,1,1) to D_(c,1,M) in the input image stored in thebuffer 701.

In step S108 (in step S104), the weak classifier processing unit 703reads out pieces of LUT data respectively corresponding to the weakclassifiers C_(c,1,1) to C_(c,1,M) from the RAM 704. In this case,assume that LUT data which corresponds to the weak classifier C_(c,i,j)is “data that represents a function to convert an image feature amount(a pixel value in this case) of the weak classifier C_(c,i,j) read outin step S107 into a score corresponding to the likelihood of the targetobject”.

In step S109 (in step S104), the weak classifier processing unit 703obtains scores S_(c,1,1) to S_(c,i,M) (refer to equation (4) below) ofthe respective weak classifiers C_(c,1,1) to C_(c,1,M) by respectivelyconverting the pixel values f (X_(c,1,1), Y_(c,1,1)) to f (X_(c,1,M),Y_(c,1,M)) by using functions L_(c,1,1) to L_(c,1,M) that are indicatedby pieces of LUT data corresponding to the respective weak classifiersC_(c,1,1) to C_(c,1,M). Then, the total value of the scores S_(c,1,1) toS_(c,1,M) obtained in this manner is obtained as the score S_(c,1) ofcategory c in stage 1 as:S _(c,i)=Σ_(j) L _(c,i,j)(f(X _(c,i,j) ,Y _(c,i,j)))  (3)S _(c,i,j) =L _(c,i,j)(f(X _(c,i,j) ,Y _(c,i,j)))  (4)

The subsequent processing is the same as in the first embodiment. Notethat if processes of steps S106 to S111 are to be performed in stepS116, the above-described modification of the steps S106 to S109 will beperformed in or after stage 2.

Note that in step S109, the scores S_(c,1,1) to S_(c,1,M) can beobtained by using equation (4) and if the scores S_(c,1,1) to S_(c,1,M)exceed the respective thresholds T_(c,1,1) to T_(c,1,M) (thresholdscorresponding to the respective weak classifiers C_(c,1,1) to C_(c,1,M))in step S110, the process can advance to step S111.

Third Modification of Above-Described Embodiments

Although there were two stages in the above-described embodiments, thenumber of stages is not limited to two. The number of stages can bethree or more. FIG. 12 shows an arrangement in which there are P (P isan integer of 3 or more) stages. In addition, a plurality of (M) weakclassifiers have been provided for each stage in FIG. 12.

Fourth Embodiment

In the arrangement shown in FIG. 7, a weak classifier processing unit703 can have a hardware arrangement if a buffer 701, a RAM 704, aclassification result holding unit 705, and an initializationinformation holding unit 706 each are formed by one or more memories anda control unit 702 is formed by a processor such as a CPU or the like.The weak classifier processing unit 703 may have, however, a softwarearrangement as well.

An example of a hardware arrangement of a computer apparatus applicableto an object classification apparatus in any case will be described withreference to the block diagram of FIG. 6.

An input unit 601 can be any type of a device as long as it is a devicecapable of inputting computer programs and data into the main apparatus.The input unit 601 is, for example, a keyboard and mouse that areoperated by the user to input various instructions and information intothe main apparatus or a device (such as a digital camera) for inputtingan input image into the main apparatus.

A data storage unit 602 is formed from at least one memory device suchas a hard disk, a flexible disk, a CD-ROM, a CD-R or DVD, a memory card,a CF card, a smart medium, an SD card, a memory stick, an xD picturecard, a USB memory, and the like, and is a memory device capable offunctioning as the buffer 701, the classification result holding unit705, and the initialization information holding unit 706 of FIG. 7. Thedata storage unit 602 stores an OS (Operating System) and variouscomputer programs and data. If the weak classifier processing unit 703is to be configured by software, the computer programs will include acomputer program for causing a CPU 605 to perform the processesdescribed above as processes that are to be performed by the weakclassifier processing unit 703. The data includes input image data andinformation (such as a threshold) handled as known information in theabove description. The computer programs and data stored in the datastorage unit 602 are appropriately loaded to a RAM 607 under the controlof the CPU 605 and processed by the CPU 605.

Note that the RAM 607 may be partially used as the data storage unit 602or if a storage device as a communication partner device of acommunication unit 603 is to be used via the communication unit 603,this storage device may be used as the data storage unit 602.

The communication unit 603 is for performing data communication with anexternal device via a network, such as a LAN or the internet, anddownloads, from the external device, the computer programs and data thatwere described as being stored in the data storage unit 602.

A display unit 604 is constituted by a CRT, a liquid crystal screen, atouch panel, or the like and can display processing results of the CPU605 as an image, characters, or the like. Note that if the display unit604 is a touch panel screen, it can also serve as a user input acceptingfunction of the input unit 601.

The CPU 605 functions as the above-described control unit 702. The CPU605 performs processing by using the computer programs and data storedin the RAM 607 and a ROM 606, thereby controlling the operation of theentire main apparatus. In addition, the CPU 605 performs or controls theprocesses described above as those to be performed by the objectclassification apparatus. Note that, there can be a single CPU 605 or aplurality of CPUs 605.

The ROM 606 stores the setting data, the boot program, and the like ofthe main apparatus.

The RAM 607 functions as the above-described RAM 704. The RAM 607 has anarea for storing the computer programs and data loaded from the datastorage unit 602 and the ROM 606 and the computer programs and datadownloaded from an external device by the communication unit 603. Inaddition, the RAM 607 has a work area used by the CPU 605 and aclassification processing unit 608 to perform various kinds ofprocessing. In other words, the RAM 607 can appropriately providevarious kinds of areas.

The classification processing unit 608 functions as the above-describedweak classifier processing unit 703 and operates based on an instructionfrom the CPU 605. More specifically, upon receiving an instruction tostart the processing from the CPU 605, the classification processingunit 608 performs object classification processing using an input imagestored in the RAM 607 and outputs the processing result to the RAM 607.The CPU 605 performs processing such as image processing or imagerecognition by using the object classification processing result outputfrom the classification processing unit 608 to the RAM 607. Theprocessing result of the CPU 605 can be stored in the RAM 607 or thedata storage unit 602 or output to an external device via thecommunication unit 603.

Note that, although the input unit 601, the data storage unit 602, andthe display unit 604 are all included in a single apparatus in thearrangement shown in FIG. 6, these functional units can be connected bya communication path using a known communication method and constitute asame kind of arrangement as a whole.

In addition, some or all of the embodiments and modifications describedabove may be appropriately used in combination or some of theembodiments and modifications may be eliminated and used.

Other Embodiments

Embodiment(s) of the present invention can also be realized by acomputer of a system or apparatus that reads out and executes computerexecutable instructions (e.g., one or more programs) recorded on astorage medium (which may also be referred to more fully as a‘non-transitory computer-readable storage medium’) to perform thefunctions of one or more of the above-described embodiment(s) and/orthat includes one or more circuits (e.g., application specificintegrated circuit (ASIC)) for performing the functions of one or moreof the above-described embodiment(s), and by a method performed by thecomputer of the system or apparatus by, for example, reading out andexecuting the computer executable instructions from the storage mediumto perform the functions of one or more of the above-describedembodiment(s) and/or controlling the one or more circuits to perform thefunctions of one or more of the above-described embodiment(s). Thecomputer may comprise one or more processors (e.g., central processingunit (CPU), micro processing unit (MPU)) and may include a network ofseparate computers or separate processors to read out and execute thecomputer executable instructions. The computer executable instructionsmay be provided to the computer, for example, from a network or thestorage medium. The storage medium may include, for example, one or moreof a hard disk, a random-access memory (RAM), a read only memory (ROM),a storage of distributed computing systems, an optical disk (such as acompact disc (CD), digital versatile disc (DVD), or Blu-ray Disc (BD)™),a flash memory device, a memory card, and the like.

While the present invention has been described with reference toexemplary embodiments, it is to be understood that the invention is notlimited to the disclosed exemplary embodiments. The scope of thefollowing claims is to be accorded the broadest interpretation so as toencompass all such modifications and equivalent structures andfunctions.

This application claims the benefit of Japanese Patent Application No.2015-093516, filed Apr. 30, 2015, which is hereby incorporated byreference herein in its entirety.

What is claimed is:
 1. An information processing apparatus comprising:at least one memory which stores instructions; and one or moreprocessors which execute the instructions to cause the informationprocessing apparatus to: implement a plurality of sequences of weakclassifiers which are logically cascade-connected in each sequence,wherein the sequences respectively correspond to a plurality ofcategories of an object and the plurality of weak classifiers aregrouped into at least a first group and a second group in the order ofconnection; control to perform, by pipeline processing, classificationprocessing by weak classifiers belonging to the first group in thesequences respectively corresponding to the plurality of categories;decide, based on results of classification processing by the weakclassifiers belonging to the first group in the sequences respectivelycorresponding to the plurality of categories, categories for whichclassification processing are to be performed by weak classifiersbelonging to the second group out of the plurality of categories; andcontrol to perform, by pipeline processing, classification processing bythe weak classifiers belonging to the second group in sequencesrespectively corresponding to the decided categories.
 2. The apparatusaccording to claim 1, wherein the one or more processors further causethe information processing apparatus to obtain evaluation values of theresults of classification processing by the weak classifiers belongingto the first group in sequences respectively corresponding to theplurality of categories and decide, based on the evaluation values, acategory for which classification processing are to be performed by theweak classifiers belonging to the second group out of the plurality ofcategories.
 3. The apparatus according to claim 2, wherein the one ormore processors further cause the information processing apparatus todecide categories in which the respective evaluation values exceed athreshold as the categories for which classification processing are tobe performed by the respective weak classifiers belonging to the secondgroup.
 4. The apparatus according to claim 2, wherein the first groupincludes a plurality of weak classifiers in a sequence corresponding tothe same category, and the one or more processors further causes theinformation processing apparatus to obtain evaluation values of resultsof classification processing by the respective weak classifiersbelonging to the first group in a sequence corresponding to a givencategory and decide the given category as the category for whichclassification processing are to be performed by the weak classifiersbelonging to the second group if any of the evaluation values of theresults of classification processing by the respective weak classifiersexceeds a threshold.
 5. The apparatus according to claim 2, wherein thefirst group includes a plurality of weak classifiers for each category,and wherein the one or more processors further cause the informationprocessing apparatus to obtain evaluation values of results ofclassification processing by the respective weak classifiers belongingto the first group in a sequence corresponding to a given category anddecide the given category as the category for which classificationprocessing are to be performed by the weak classifiers belonging to thesecond group if a total value of the evaluation values of the results ofthe classification processing by the respective weak classifiers exceedsa threshold.
 6. The apparatus according to claim 1, wherein the one ormore processors further cause the information processing apparatus tocontrol to first perform, by pipeline processing, classificationprocessing by the weak classifiers belonging to the first group in asequence of a category preset as a category having a high possibilitythat classification processing by the weak classifiers belonging to thesecond group will be performed.
 7. The apparatus according to claim 1,wherein the one or more processors further cause the informationprocessing apparatus to control to start classification processing bythe weak classifiers belonging to the second group prior to completionof classification processing by all of the weak classifiers belonging tothe first group.
 8. An information processing method performed by aninformation processing apparatus that includes a plurality of sequencesof weak classifiers which are logically cascade-connected in eachsequence and the sequences respectively correspond to a plurality ofcategories of an object and in which the plurality of weak classifiersare grouped into at least a first group and a second group in the orderof connection, comprising: performing, by pipeline processing,classification processing by weak classifiers belonging to the firstgroup in the sequences respectively corresponding to the plurality ofcategories; deciding, based on results of classification processing bythe weak classifiers belonging to the first group in the sequencesrespectively corresponding to the plurality of categories, categoriesfor which classification processing are to be performed by weakclassifiers belonging to the second group out of the plurality ofcategories; and performing, by pipeline processing, classificationprocessing by the weak classifiers belonging to the second group insequences respectively corresponding to the decided categories.
 9. Anon-transitory computer-readable storage medium storing a computerprogram for causing a computer to: implement a plurality of sequences ofweak classifiers which are logically cascade-connected in each sequence,wherein the sequences respectively correspond to a plurality ofcategories of an object and the plurality of weak classifiers aregrouped into at least a first group and a second group in the order ofconnection; control to perform, by pipeline processing, classificationprocessing by weak classifiers belonging to the first group in thesequences respectively corresponding to the plurality of categories;decide, based on results of classification processing by the weakclassifiers belonging to the first group in the sequences respectivelycorresponding to the plurality of categories, categories for whichclassification processing are to be performed by weak classifiersbelonging to the second group out of the plurality of categories; andcontrol to perform, by pipeline processing, classification processing bythe weak classifiers belonging to the second group in sequencesrespectively corresponding to the decided categories.